package com.pospi.xstore.greendao;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.pospi.xstore.dto.CountBeen;
import com.pospi.xstore.dto.GiveBeen;
import com.pospi.xstore.dto.OrderBeen;
import com.pospi.xstore.dto.ProGoodsBeen;
import com.pospi.xstore.dto.Promotionbeen;
import com.pospi.xstore.dto.ReceiveBeen;
import com.pospi.xstore.dto.ReduceProBeen;
import com.pospi.xstore.dto.SingleProBeen;
import com.pospi.xstore.dto.Tablebeen;

import com.pospi.xstore.greendao.CountBeenDao;
import com.pospi.xstore.greendao.GiveBeenDao;
import com.pospi.xstore.greendao.OrderBeenDao;
import com.pospi.xstore.greendao.ProGoodsBeenDao;
import com.pospi.xstore.greendao.PromotionbeenDao;
import com.pospi.xstore.greendao.ReceiveBeenDao;
import com.pospi.xstore.greendao.ReduceProBeenDao;
import com.pospi.xstore.greendao.SingleProBeenDao;
import com.pospi.xstore.greendao.TablebeenDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig countBeenDaoConfig;
    private final DaoConfig giveBeenDaoConfig;
    private final DaoConfig orderBeenDaoConfig;
    private final DaoConfig proGoodsBeenDaoConfig;
    private final DaoConfig promotionbeenDaoConfig;
    private final DaoConfig receiveBeenDaoConfig;
    private final DaoConfig reduceProBeenDaoConfig;
    private final DaoConfig singleProBeenDaoConfig;
    private final DaoConfig tablebeenDaoConfig;

    private final CountBeenDao countBeenDao;
    private final GiveBeenDao giveBeenDao;
    private final OrderBeenDao orderBeenDao;
    private final ProGoodsBeenDao proGoodsBeenDao;
    private final PromotionbeenDao promotionbeenDao;
    private final ReceiveBeenDao receiveBeenDao;
    private final ReduceProBeenDao reduceProBeenDao;
    private final SingleProBeenDao singleProBeenDao;
    private final TablebeenDao tablebeenDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        countBeenDaoConfig = daoConfigMap.get(CountBeenDao.class).clone();
        countBeenDaoConfig.initIdentityScope(type);

        giveBeenDaoConfig = daoConfigMap.get(GiveBeenDao.class).clone();
        giveBeenDaoConfig.initIdentityScope(type);

        orderBeenDaoConfig = daoConfigMap.get(OrderBeenDao.class).clone();
        orderBeenDaoConfig.initIdentityScope(type);

        proGoodsBeenDaoConfig = daoConfigMap.get(ProGoodsBeenDao.class).clone();
        proGoodsBeenDaoConfig.initIdentityScope(type);

        promotionbeenDaoConfig = daoConfigMap.get(PromotionbeenDao.class).clone();
        promotionbeenDaoConfig.initIdentityScope(type);

        receiveBeenDaoConfig = daoConfigMap.get(ReceiveBeenDao.class).clone();
        receiveBeenDaoConfig.initIdentityScope(type);

        reduceProBeenDaoConfig = daoConfigMap.get(ReduceProBeenDao.class).clone();
        reduceProBeenDaoConfig.initIdentityScope(type);

        singleProBeenDaoConfig = daoConfigMap.get(SingleProBeenDao.class).clone();
        singleProBeenDaoConfig.initIdentityScope(type);

        tablebeenDaoConfig = daoConfigMap.get(TablebeenDao.class).clone();
        tablebeenDaoConfig.initIdentityScope(type);

        countBeenDao = new CountBeenDao(countBeenDaoConfig, this);
        giveBeenDao = new GiveBeenDao(giveBeenDaoConfig, this);
        orderBeenDao = new OrderBeenDao(orderBeenDaoConfig, this);
        proGoodsBeenDao = new ProGoodsBeenDao(proGoodsBeenDaoConfig, this);
        promotionbeenDao = new PromotionbeenDao(promotionbeenDaoConfig, this);
        receiveBeenDao = new ReceiveBeenDao(receiveBeenDaoConfig, this);
        reduceProBeenDao = new ReduceProBeenDao(reduceProBeenDaoConfig, this);
        singleProBeenDao = new SingleProBeenDao(singleProBeenDaoConfig, this);
        tablebeenDao = new TablebeenDao(tablebeenDaoConfig, this);

        registerDao(CountBeen.class, countBeenDao);
        registerDao(GiveBeen.class, giveBeenDao);
        registerDao(OrderBeen.class, orderBeenDao);
        registerDao(ProGoodsBeen.class, proGoodsBeenDao);
        registerDao(Promotionbeen.class, promotionbeenDao);
        registerDao(ReceiveBeen.class, receiveBeenDao);
        registerDao(ReduceProBeen.class, reduceProBeenDao);
        registerDao(SingleProBeen.class, singleProBeenDao);
        registerDao(Tablebeen.class, tablebeenDao);
    }
    
    public void clear() {
        countBeenDaoConfig.clearIdentityScope();
        giveBeenDaoConfig.clearIdentityScope();
        orderBeenDaoConfig.clearIdentityScope();
        proGoodsBeenDaoConfig.clearIdentityScope();
        promotionbeenDaoConfig.clearIdentityScope();
        receiveBeenDaoConfig.clearIdentityScope();
        reduceProBeenDaoConfig.clearIdentityScope();
        singleProBeenDaoConfig.clearIdentityScope();
        tablebeenDaoConfig.clearIdentityScope();
    }

    public CountBeenDao getCountBeenDao() {
        return countBeenDao;
    }

    public GiveBeenDao getGiveBeenDao() {
        return giveBeenDao;
    }

    public OrderBeenDao getOrderBeenDao() {
        return orderBeenDao;
    }

    public ProGoodsBeenDao getProGoodsBeenDao() {
        return proGoodsBeenDao;
    }

    public PromotionbeenDao getPromotionbeenDao() {
        return promotionbeenDao;
    }

    public ReceiveBeenDao getReceiveBeenDao() {
        return receiveBeenDao;
    }

    public ReduceProBeenDao getReduceProBeenDao() {
        return reduceProBeenDao;
    }

    public SingleProBeenDao getSingleProBeenDao() {
        return singleProBeenDao;
    }

    public TablebeenDao getTablebeenDao() {
        return tablebeenDao;
    }

}
